Computer Science
The Computer Science curriculum prepares students for careers in all areas of the computer industry as well as for graduate studies in computer science and computer related fields. Students have also found a computer science major to be excellent preparation for careers in law, medicine, business administration, industrial engineering, biomedical engineering, and other technical and non-technical fields.
Computer science is a rapidly changing discipline. The lifetime of a particular computer system or software package can be very short. The computer science curriculum is designed to prepare students for multiple careers in a rapidly changing environment. The department’s courses emphasize fundamental concepts and techniques that will last longer than present technology.
Computer science majors complete a core of basic computer science courses that includes the study of algorithms, data structures, database concepts, computer architecture, programming languages, operating systems, and software engineering. Majors also complete important courses in closely related fields, e.g., discrete mathematics, digital logic design, and probability and statistics. The major requires students to study all aspects of the science of computing, including hardware, software, and theory.
Courses in database systems, compilers, computer graphics, fractals and chaotic dynamical systems, artificial intelligence, theory of computation, analysis of algorithms, computer networks, computer vision, web-based information systems, and cryptography are available as advanced electives. A three-term senior project provides valuable practical experience in the specification, design, implementation, and documentation of large software systems. Qualified students can undertake independent study in advanced topics in computer science, participate in a research project with a faculty member, or complete a senior thesis.
Programming assignments and large projects are part of most computer science courses. These assignments familiarize students with the wide variety of tasks performed by software professionals. Programming assignments include system specification, system feasibility studies, system design, system maintenance studies, and user interface design in addition to system implementation (i.e., coding), testing (verification and validation), and documentation. Projects include both individual and team activities and require appropriate written and oral presentations.
Computer science majors have diverse interests and career goals. Five free elective courses allow students to tailor their undergraduate education to their specific goals. Students planning to undertake graduate study in computer science usually take additional advanced courses in computer science, electrical engineering, and mathematics.
The department has its own local area network. This network is connected to the campus-wide network and the Internet. Laboratory machines are mostly Sun Ultra workstations. Computer science majors have unlimited access to the department’s laboratories. Computer science majors are frequently employed by the computing center as user consultants, and by the department as system managers and course assistants.
The student chapter of the Association for Computing Machinery provides seminars and other technical activities throughout the year and sponsors the school’s programming teams which compete in local, regional, and national contests. The national computer science honor society, Upsilon Pi Epsilon, has chartered its Indiana Alpha Chapter at Rose-Hulman.
Computer Science Program Educational Objectives
Graduates from the computer science program will be prepared for many types of careers in the field of computing and be prepared for graduate study in computer science and in closely related disciplines. In the early phases of their careers, we expect
Rose-Hulman computer science graduates to be:
- Computing professionals in a variety of organizations, including ones doing traditional software development, technological innovation, and cross-disciplinary work
- Business and technological leaders within existing organizations
- Recognized by their peers and superiors for their communication, teamwork, and leadership skills
- Actively involved in social and professional service locally, nationally, and globally
- Graduate students and researchers
- Leaders in government and law as government employees, policy makers, governmental advisors, and legal professionals
Computer Science Student Outcomes
Graduates of the program will have an ability to:
- Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
- Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
- Communicate effectively in a variety of professional contexts.
- Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
- Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
- Apply computer science theory and software development fundamentals to produce computing-based solutions.
The faculty strives to maintain an open atmosphere that encourages mutual respect and support as well as learning and sharing of knowledge.
The computer science program is accredited by the Computing Accreditation Commission of ABET, https://www.abet.org, under the commission’s General Criteria and Program Criteria for Computer Science and Similarly Named Computing Programs.
CSSE electives cannot include any of CSSE 372, 373, 375, 376, and 477.
Science elective is any CHEM, PH, GEOL, or BIO courses totaling at least 4 credits.
HSSA electives must be distributed as required by HSSA.
Summary of graduation requirements for the computer science major
To complete the major in computer science a student must complete the following:
- All required courses listed by number in the schedule of courses above: CSSE120, CSSE132, CSSE220, CSSE230, CSSE232, CSSE280, CSSE304, CSSE332, CSSE333, CSSE371, CSSE374, CSSE473 or MA473 and CSSE474 or MA474, and either CSSE487-9 or CSSE494-6 or CSSE497-9; MA111, MA112, MA113, MA221, MA276, MA374, MA381; ECE233, ECE332; PH111, PH112; CHEM111; HUMH190, ENGLH290; RHIT100.
- Twelve credits of additional computer science courses numbered between 300 and 492 and designated as computer science electives. None of the credits may be from CSSE372, 373, 375, 376, and 477. The student’s academic advisor must approve the courses to satisfy this requirement. Use of computer science courses numbered 490 through 492 to fulfill this requirement must be approved by the department head. Credits used to satisfy any requirements for a minor or secondary major pursued by a student cannot also be used to satisfy CS elective requirements for the student’s primary or secondary major in Computer Science. Credits used by a student pursuing a secondary major in CS that are intended to satisfy the CS elective requirement can only be used to satisfy technical or free elective requirements within the student’s primary major or not used towards any requirements within the primary major.
- Four credits of science electives, which can be any CHEM, PH, BIO, or GEOL courses not already required for the computer science major.
- Four additional credits of technical electives, consisting of any courses in biology, chemistry, engineering (except software engineering and engineering management), geology, mathematics, biomathematics, or physics.
- Twenty-eight credits of additional courses offered by the Department of Humanities, Social Sciences, and the Arts. The distribution of these courses must meet the requirements of the Department of Humanities, Social Sciences, and the Arts.
- Twenty credits of free elective courses. These courses must have the approval of the student’s academic adviser. Free electives may be selected from any Rose-Hulman course.
- A total of 192 credits.
DATA SCIENCE MAJOR (SECOND MAJOR ONLY)
Data Science is open to all students as a second major; this means that the student will have some other discipline as their primary major. Students whose primary major is in Computer Science, Software Engineering or Mathematics will find the Data Science program the easiest since there is considerable overlap between those programs and the Data Science requirements Students from other disciplines are also encouraged to participate, but will have to take more courses. All students are encouraged to take the individual courses in the program, regardless of whether they wish to fulfill the second major requirements. Learn more about Data Science requirements.
Area Minor in Computer Science
Advisor: CSSE Department Head
Students majoring in Software Engineering may not receive a Computer Science minor.
Required courses
- CSSE120 Introduction to Software Development
- CSSE220 Object-Oriented Software Development
- CSSE230 Data Structures and Algorithm Analysis
- 16 additional credits of computer science courses numbered above 200 that are either required by the CS major or are identified as CS electives
- None of the f ollowing courses may be used: CSSE371, CSSE374, CSSE487- 489, CSSE494-496, CSSE497-499
Minor in Cybersecurity
Prerequisites (may already be required by degree program):
- (4cr) CSSE 220 (requires CSSE 120* or exempt)
* Degrees requiring a programming class might allow the use of CSSE 120 as a substitute for the named course. Consult the major program’s advisor for details. - (4cr) MA276 Introduction to Proofs (requires MA112 + MA111 or exempt) only if selecting MA479 (see below)
- (4cr) ENG H290 Technical & Professional Communications
CATEGORY A – [4 cr] Ethics:
- (4cr) PHIL H202 - Business & Eng Ethics (or equivalent approved by the minor advisor)
CATEGORY B – [12 cr] Core (take all of these):
- (2cr) CSSE 140 and CSSE 141
- (2cr) either CSSE 142 Practical Security III or CSSE 145 Cybersecurity Seminar
- (4cr) CSSE 340 Foundations of Cybersecurity (CSSE majors) or CSSE 240 Principles of Cybersecurity (non-CSSE majors)
- (4cr) either CSSE 343 Cybercrime & Digital Forensics or MA 479 Cryptography
CATEGORY C – [choose 8 cr] additional Cyber Electives:
* A maximum 4cr may be from classes numbered below 300
- (4cr) the other of either CSSE 343 -or- MA 479 (crypto)
- (4cr) CSSE 490 Advanced crypto
- (4cr) ECE 497 Malware Analysis & Reverse Engineering
- (4cr) CSSE 290 CTF Competition Class or similar elective
- (4cr) CSSE 490 Blockchain and Security
- (4cr) CSSE 490 Network Security
- (1-8cr) other cybersecurity-related classes or electives such as independent study, directed research, thesis, or capstone projects (approved by the minor advisor)
Expected cybersecurity content: 20cr (Category B and C)
Minimum separation from named degree or other minor requirements: 12cr*
* may be used as free elective credit in major degree programs
Note: At most 8 credits of the Core/Cyber Elective course work (categories B and C above) can be used to satisfy degree requirements for any major or any other minor sought by the student. The remaining credit hours can only be used to satisfy technical or free electives within the primary major.
Plan of Study
Total credits required: 192